<?php

use Controller\Apps;
use Validator\BaseValidator;
use Logic\User\UserLogic;

class UserController extends Apps
{
    protected $needLoginActions = ['getuserinfo'];
    private $userLogic;


    public function init()
    {
        parent::init();
        $this->userLogic = new UserLogic();

    }

    /**
     * @api {post} /v1/user/getuserinfo 获取用户信息
     * @apiGroup user
     * @apiVersion 1.0.0
     * @apiUse reqT
     * @apiSuccess (返回-params) {array} real_name 实名信息
     * @apiSuccess (返回-params) {int} real_name.code 实名状态码
     * @apiSuccess (返回-params) {int} real_name.id 用户ID
     * @apiSuccess (返回-params) {varchar} real_name.yst_user_type 0为未认证,1为个人用户,2为企业用户'
     * @apiSuccess (返回-params) {varchar} real_name.special_status '1 注册用户(待审核) 2 普通会员  3精选会员''
     * @apiSuccess (返回-params) {varchar} real_name.type '0人1售出人 只能用于精选用户判断'
     * @apiSuccess (返回-params) {varchar} real_name.role 角色 (ORD_BUYER普买 ORD_SELLER普卖 SPECIAL_BUYER精买 SPECIAL_SELLER精卖)
     * @apiSuccess (返回-params) {varchar} real_name.upgrade fail未有数据 INIT初始化  AUDIT审核中 PASSED  通过 REFUSED拒绝
     * @apiSuccess (返回-params) {array} basic_user_info 用户基础信息
     * @apiSuccess (返回-params) {int} basic_user_info.realname 名字
     * @apiSuccess (返回-params) {int} basic_user_info.cardType 证件类型
     * @apiSuccess (返回-params) {int} basic_user_info.idcard 证件号
     * @apiSuccess (返回-params) {int} basic_user_info.mobile 手机号
     * @apiSuccess (返回-params) {int} basic_user_info.usableSum 可用余额
     * @apiSuccess (返回-params) {int} basic_user_info.totalSum 总余额（不包括待收利息和本金）
     * @apiSuccess (返回-params) {int} basic_user_info.isLegal '是否准企，0否 1是'
     * @apiSuccess (返回-params) {int} basic_user_info.realname_status 是否实名 （0否1是）
     * @apiSuccess (返回-params) {int} basic_user_info.mail_num 信息数量
     * @apiSuccess (返回-params) {int} basic_user_info.cart_num 购物车数量
     * @apiSuccess (返回-params) {int} basic_user_info.province_id 经营地址省id（当用户为升级后的企业时出现）
     * @apiSuccess (返回-params) {int} basic_user_info.city_id 经营地址市id（当用户为升级后的企业时出现）
     * @apiSuccess (返回-params) {int} basic_user_info.yst_contract_status 电子协议签署状态（1：签署成功，0：未签/失败',）
     * @apiSuccess (返回-params) {int} basic_user_info.is_bind_wechat 微信绑定状态（1：已绑定，0：未绑定',）
     * @apiSuccess (返回-params) {int} basic_user_info.has_ssq 电子合同签署状态（1：签署成功，0：未签/失败',）
     * @apiSuccess (返回-params) {int} basic_user_info.yst_ca_status ca状态（1：签署成功，0：未签/失败',）
     * @apiSuccess (返回-params) {int} basic_user_info.is_transfer 能否资金互转(目前只允许精选买家&代理商)
     * @apiSuccess (返回-params) {array} role_info 角色特殊信息
     * @apiSuccess (返回-params) {int} role_info.benjin 本金
     * @apiSuccess (返回-params) {int} role_info.lixi 利息
     * @apiSuccess (返回-params) {int} role_info.totalSpecialSum 总金额（包含本金和利息 精选买家需要用到）
     * @apiSuccess (返回-params) {int} role_info.shop_type 店铺性质 1 专营店  2 旗舰店（当角色为卖家是出现）
     */
    public function getUserInfoAction()
    {
        //实名和角色信息
        $realNameStatus = [
            'id'=>$this->userInfo['id'],
            'yst_user_type'=>$this->userInfo['yst_user_type'],
            'special_status'=>$this->userInfo['special_status'],
            'type'=>$this->userInfo['type'],
            'role'=>(new UserModel())->getCurrRoleById($this->userInfo['id']),
        ];

        //基础用户信息
        $basicUserInfo = (new UserLogic())->getUserInfo($this->userInfo['id']);

        $list = [
            'real_name' => $realNameStatus,
            'basic_user_info' => $basicUserInfo,
        ];

        $this->success('success',['user_info'=>$list]);
    }

}